home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PsL Monthly 1993 December
/
PSL Monthly Shareware CD-ROM (December 1993).iso
/
prgmming
/
dos
/
basic
/
pbtool.exe
/
CONVERT2.BAS
< prev
next >
Wrap
BASIC Source File
|
1991-11-11
|
4KB
|
109 lines
' PROGRAM: CONVERT2.BAS PROGRAMMER: ANDY KELLETT 05/20/91
' DATE-WRITTEN: 05/20/91 USING POWER BASIC V2.10a
' THIS PROGRAM CAPITALIZES THE FIRST LETTER OF EACH WORD IN A
' (LOWERCASE) TEXT FILE AND WRITES A NEW TEXT FILE TO DISK.
' UPDATE: WORKS WITH LARGER CHUNKS OF DATA FOR BETTER SPEED!
' LAST UPDATED: 11/11/91
'--------------------------------------------------------------------
LAST.CHAR$ = " "
BUF.SIZE% = 10000
CLS
LOCATE 1,1:PRINT " ┌──────────────────────────────────────────────────────────────┐"
LOCATE 2,1:PRINT " │ THIS PROGRAM ALLOWS YOU TO CONVERT A TEXT FILE TO │"
LOCATE 3,1:PRINT " │ CAPITALIZE THE FIRST LETTER OF EACH WORD AND LEAVE ALL │"
LOCATE 4,1:PRINT " │ OTHER CHARACTERS IN LOWERCASE. IT WILL WRITE OUT A NEW │"
LOCATE 5,1:PRINT " │ TEXT FILE TO DISK AND WILL NOT ALTER THE ORIGINAL TEXT │"
LOCATE 6,1:PRINT " │ FILE USED IN THE INPUT. │"
LOCATE 7,1:PRINT " │ │"
LOCATE 8,1:PRINT " │ │"
LOCATE 9,1:PRINT " │ │"
LOCATE 10,1:PRINT " └──────────────────────────────────────────────────────────────┘"
CLS
LOCATE 1,25:PRINT "CONVERT2 - A. KELLETT"
7
GOSUB FILEEXISTS
IF FILE1EOF& => BUF.SIZE% THEN
BUF.LEN& = BUF.SIZE%
ELSE
BUF.LEN& = FILE1EOF&
END IF
'*** OPEN BOTH FILES, READ & PROCESS & WRITE, CLOSE BOTH FILES ***
LOCATE 13,5:PRINT USING "TOTAL BYTES IN FILE: ###,###";FILE1EOF&
LOCATE 14,5:PRINT "WORKING ON BYTE: "
OPEN FILENAME1$ FOR BINARY AS #1
OPEN FILENAME2$ FOR BINARY AS #2
QUITFLAG% = 0
WHILE QUITFLAG% = 0
GET$ 1, BUF.LEN&, IN.BUFFER$
MID$(IN.BUFFER$,1, 1) = UCASE$(LEFT$(IN.BUFFER$,1))
LAST.CHAR$ = LEFT$(IN.BUFFER$,1)
FOR I% = 2 TO LEN(IN.BUFFER$)
REM** WE NEED TO CAPITALIZE CURRENT CHARACTER **
IF (LAST.CHAR$ = " " OR_
LAST.CHAR$ = "." OR_
LAST.CHAR$ = "," ) THEN
MID$(IN.BUFFER$, I%, 1) = UCASE$(MID$(IN.BUFFER$, I%, 1))
'** UNCOMMENT NEXT TWO LINES TO LOWERCASE ALL OTHER CHARACTERS **
' ELSE
' MID$(IN.BUFFER$, I%, 1) = LCASE$(MID$(IN.BUFFER$, I%, 1))
END IF
LAST.CHAR$ = MID$(IN.BUFFER$, I%, 1)
NEXT I%
PUT$ 2, IN.BUFFER$
LAST.CHAR$ = CHAR$
BYTES.READ& = BYTES.READ& + BUF.LEN&
LOCATE 14, 22:PRINT USING "###,###";BYTES.READ&
IF BYTES.READ& => FILE1EOF& THEN
QUITFLAG% = 1
ELSE
IF FILE1EOF& - BYTES.READ& < BUF.LEN& THEN
BUF.LEN& = FILE1EOF& - BYTES.READ& :REM**READ IN LEFTOVER BYTES **
END IF
END IF
WEND
CLOSE #2:CLOSE #1
LOCATE 16,10:PRINT "PROGRAM COMPLETED"
END
'
'
'----------------------------------------------------------
FILEEXISTS:
LOCATE 2,15:PRINT "THIS PROGRAM CONVERTS A TEXT FILE TO UPPER/LOWER CASE."
LOCATE 5,5:INPUT "NAME OF INPUT FILE: ";FILENAME1$
IF FILENAME1$ = "" THEN
PRINT "YOU MUST ENTER A FILE NAME -- PROGRAM ENDING. "
END
END IF
'*** CHECK VALIDITY OF INPUT FILE NAME ***
OPEN FILENAME1$ FOR BINARY AS #1
IF LOF(1) < 1 THEN
PRINT "THE INPUT FILE DOES NOT EXISTS."
CLOSE #1
KILL FILENAME1$
DELAY 2.5
LOCATE 22,1
END
END IF
FILE1EOF& = LOF(1)
CLOSE #1
LOCATE 6,5:INPUT "NAME OF OUTPUT FILE: ";FILENAME2$
'*** CHECK VALIDITY OF OUTPUT FILE NAME ***
OPEN FILENAME2$ FOR BINARY AS #2
IF LOF(2) > 1 THEN
PRINT "THE OUTPUT FILE ALREADY EXISTS."
CLOSE #2
KILL FILENAME2$
DELAY 2.5
LOCATE 22,1
END
END IF
CLOSE #2
RETURN